home *** CD-ROM | disk | FTP | other *** search
/ Revolution - Das Atari CD Magazin 1997 / Revolution - Das Atari CD Magazin 1.iso / software / anwendng / clix360 / clix_m.ext < prev    next >
Text File  |  1997-01-21  |  5KB  |  240 lines

  1. #***********************************************************************
  2. # Modula-2-Sourcen:
  3. EXTENSION ".M", ".D", ".I", ".MOD", ".DEF", ".IMP" = {
  4.  
  5.   COMMENT {DarkCyan, Light} = "(*", "*)";
  6.   REGION {} = '(', ')';
  7.   REGION {} = '[', ']';
  8.   REGION {} = '{', '}';
  9.   REGION {} = '"', '"';
  10.   REGION {} = "'", "'";
  11.  
  12.  
  13.   KEYS {DarkBlue, Light} =
  14.         CONST, TYPE, VAR, RECORD, ARRAY, PROCEDURE, BEGIN, END, IF, THEN, ELSE,
  15.         ELSIF, WHILE, WITH, CASE, REPEAT, UNTIL, LOOP, FOR;
  16.  
  17.   # Weil es wichtig ist und man damit versteckte Rücksprünge besser sieht:
  18.   KEYS {DarkRed, Bold} =
  19.      RETURN, EXIT,
  20.      BREAK, CONTINUE,
  21.      "bkpt",
  22.      illegal;
  23.  
  24.   KEYS {DarkGreen, Bold} =
  25.      BOOLEAN, SHORTINT, LONGINT, INTEGER, SHORTCARD, LONGCARD, CARDINAL,
  26.      ADDRESS, BYTE, REAL, LONGREAL, SHORTREAL, POINTER, BITSET, LONGSET,
  27.      CHARSET;
  28.  
  29.   KEYS {DarkMagenta, Bold} =
  30.       SYSTEM, System;
  31.  
  32.   SHORTCUT "adr" = "SYSTEM.ADR(\c)";
  33.   SHORTCUT "sa" = "SYSTEM.ADDRESS";
  34.  
  35. # und eine größere Menge Shortcuts
  36.   SHORTCUT "fo" = "FOR \c := TO DO\nEND;\n";
  37.  
  38.   SHORTCUT "ie" = {\
  39. IF \c THEN
  40.   ELSE
  41.   END; (* IF ELSE *)
  42. };
  43.  
  44.   SHORTCUT 'rf' = {RETURN FALSE;};
  45.  
  46.   SHORTCUT 'rcs' = {\
  47. (****************************************************************************
  48.  *
  49.  *
  50.  * $Source$
  51.  *
  52.  * $Revision$
  53.  *
  54.  * $Author$
  55.  *
  56.  * $Date$
  57.  *
  58.  * $State$
  59.  *
  60.  *****************************************************************************
  61.  * History:
  62.  *
  63.  * $Log$
  64.  *
  65.  *
  66.  ****************************************************************************)
  67. };
  68.  
  69.  
  70. SHORTCUT 'opts' = {\
  71. (* IMPLEMENTATION FÜR  >>> Hänisch-Modula-2 <<< *)
  72. (*                                              *)
  73. (* Durchgeführt von Steffen Engel               *)
  74. (*                                              *)
  75. (*$S-   Stack-Checks                            *)
  76. (*$I-   keine Variablen-Initialisierung         *)
  77. (*$V-   keine arithmetischen Kontrollen         *)
  78. (*$T-   kein Bereichstest                       *)
  79. (*$Y-   keine Laufzeittests auf RETURN und CASE *)
  80. (*                                              *)
  81. (*----------------------------------------------*)
  82. };
  83.  
  84. SHORTCUT 'import' = {\
  85. (* Systemabhängiges *)
  86. opts\e
  87.  
  88.  
  89. IMPORT SYSTEM, System;
  90.  
  91. (* Standard HM2-Libs *)
  92.  
  93. (* Magic-Lib *)
  94. FROM MagicSys   IMPORT
  95.                 (* Const *) Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5,
  96.                             Bit6, Bit7, Bit8, Bit9, Bit10, Bit11, Bit12,
  97.                             Bit13, Bit14, Bit15,
  98.                 (* Type  *) LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
  99.                             sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET;
  100.  
  101. (* Magic-Tools *)
  102.  
  103. (* Eigene Libs *)
  104.  
  105. (* Projektlibs *)
  106.  
  107. };
  108.  
  109.  
  110. SHORTCUT 'dm'  = {\
  111. DEFINITION MODULE \c;
  112. rcs\e
  113. import\e
  114.  
  115. END.
  116.  
  117. };
  118.  
  119.  
  120. SHORTCUT 'im'  = {\
  121. IMPLEMENTATION MODULE \c;
  122. rcs\e
  123.  
  124. import\e
  125.  
  126. BEGIN
  127. END.
  128.  
  129. };
  130.  
  131. SHORTCUT 'mo'  = {\
  132. MODULE \c;
  133. rcs\e
  134.  
  135. import\e
  136.  
  137. BEGIN
  138. END.
  139. };
  140.  
  141. SHORTCUT 'ar'  = "ARRAY[\c..] OF ;";
  142.  
  143. SHORTCUT 'fo' = {\
  144. FOR \c := TO DO
  145. END;
  146. };
  147.  
  148. SHORTCUT 'ie'  = {\
  149. IF \c THEN
  150.   ELSE
  151.   END; (* IF ELSE *)
  152. };
  153.  
  154. SHORTCUT 'if'  = {\
  155. IF \c
  156.   THEN
  157.   END; (* IF *)
  158. };
  159.  
  160. SHORTCUT 'p'   = {\
  161. PROCEDURE \c
  162.   BEGIN
  163.   END ;
  164. };
  165.  
  166. SHORTCUT 're'  = {\
  167. RECORD
  168.   \c
  169. END;
  170. };
  171.  
  172. SHORTCUT 'ca'  = {\
  173. CASE \c OF
  174.   ELSE
  175. END;  (* CASE *)
  176. };
  177.  
  178. SHORTCUT 'wh'  = {\
  179. WHILE \c DO
  180. END;  (* WHILE *)
  181. };
  182.  
  183. SHORTCUT 'ru'  = {\
  184. REPEAT
  185. UNTIL \c;
  186. };
  187.  
  188. SHORTCUT 'lo'  = {\
  189. LOOP\c
  190. END;  (* LOOP *)
  191. };
  192.  
  193. SHORTCUT 'wi'  = {\
  194. WITH \c DO
  195. END;  (* WITH *)
  196. };
  197.  
  198. SHORTCUT 'rf'  = {RETURN FALSE;};
  199.  
  200. SHORTCUT 'rt'  = {RETURN TRUE;};
  201.  
  202. SHORTCUT 'port' = {\
  203. FROM Portab IMPORT tCompiler, Compiler;
  204.  
  205.  
  206. <*$?Compiler = Megamax:
  207. (* Implementierung für >>> Megamax-Modula-2 <<< *)
  208. (*                                              *) 
  209. (* Durchgeführt von Steffen Engel               *) 
  210. (*                                              *) 
  211. (*$S-   Stack-Checks                            *) 
  212. (*$R-   kein Bereichstest                       *) 
  213. (*$Z+   Rückgabe in Registern                   *) 
  214. (*                                              *) 
  215. (*----------------------------------------------*) 
  216. *>
  217.  
  218. <*$?Compiler = Haenisch:
  219. (* Implementierung für >>> Hänisch-Modula-2 <<< *)
  220. (*                                              *) 
  221. (* Durchgeführt von Steffen Engel               *) 
  222. (*                                              *) 
  223. (*$S-   Stack-Checks                            *) 
  224. (*$I-   keine Variablen-Initialisierung         *) 
  225. (*$V-   keine arithmetischen Kontrollen         *) 
  226. (*$T-   kein Bereichstest                       *) 
  227. (*$Y-   keine Laufzeittests auf RETURN und CASE *) 
  228. (*                                              *) 
  229. (*----------------------------------------------*)
  230. *>
  231. };
  232.  
  233.  
  234. SHORTCUT 'pf' = {\
  235. VOID(stdio.printf('\c',
  236.                   stdio.tAdressArray{NIL BY 9\}));};
  237.  
  238. }
  239.  
  240.